package cn.cs.service;


import cn.cs.common.Dto;
import cn.cs.common.Page;
import cn.cs.pojo.ClientUser;
import cn.cs.pojo.RepOrder;
import cn.cs.pojo.RepairOrder;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

public interface RepairOrderService {

    public List<String> getUserOrderType(String userId) throws Exception;

    public List<Map<String, Object>> getAppOrderByUserId(String userId) throws Exception;

    public List<Map<String, Object>> getAppOrderById(Map<String, Object> map) throws Exception;

    public List<Map<String, Object>> getAppOrderByOrderState(String userId) throws Exception;

    public List<RepairOrder> getRepairOrderList(Map<String, Object> param) throws Exception;

    public List<RepairOrder> getRepairOrderListByMap(Map<String, Object> param) throws Exception;

    public Integer getRepairOrderCountByMap(Map<String, Object> param) throws Exception;

    public Integer addRepairOrder(RepOrder repairOrder) throws Exception;

    public Page<Map<String, Object>> queryRepairOrderPageByMap(Map<String, Object> param, Integer pageNo, Integer pageSize) throws Exception;

    public Page<Map<String, Object>> queryRepairOrderRepairUserPageByMap(Map<String, Object> param, Integer pageNo, Integer pageSize) throws Exception;

    public Dto updateRepairOrder(HttpServletRequest request, String id, String orderState) throws Exception;

    public Dto userBalancePay(String orderNo, String userId, double countSum) throws Exception;

    public Dto userBalancePayDQC(String orderNo, String userId, double countSum, String factoryId) throws Exception;

    public Dto userBalancePayTestReport(String orderNo, String userId, double countSum) throws Exception;

    public Map<String, Object> getOrderDetailsByOrderId(String orderId) throws Exception;

    public Integer updateOrderStatusByAppId(String order_state, String appId) throws Exception;

    public Map<String, Object> getOrderByAppOrderId(String appOrderId);

    public Page<RepairOrder> queryRepairOrderAgentAPageByMap(Map<String, Object> param, Integer pageNo, Integer pageSize) throws Exception;

    public Dto queryRepairOrderAgentProfitAll(Map<String, Object> param) throws Exception;

    public ClientUser getClientUserById(Long id)throws Exception;

    public Map<String, Object> getTestReportById(String orderNo)throws Exception;

    public Map<String, Object> queryRepairInsurancePageByMap(Map<String, Object> param, Integer pageNo, Integer pageSize) throws Exception;
}
